home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 11 / CU Amiga Magazine's Super CD-ROM 11 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-06].iso / cucd / programming / oberonv4 / source / system / printer.mod (.txt) < prev    next >
Oberon Text  |  1995-10-30  |  3KB  |  74 lines

  1. Syntax10.Scn.Fnt
  2. Syntax10b.Scn.Fnt
  3. Syntax10i.Scn.Fnt
  4. MODULE Printer;    (*UNIX version: JT 11.5.90, RC 2.7.93,  JS 13.10.94, << Ceres, SHML 12 Jul 95 *)
  5.     IMPORT PrinterDriver, Modules;
  6.         res*: INTEGER; (*0 = done, 1 = not done*)
  7.         PageWidth*, PageHeight*: INTEGER;
  8.         arg: ARRAY 32 OF CHAR;
  9.     (* -- Exported Procedures -- *)
  10.     PROCEDURE Open*(VAR name, user: ARRAY OF CHAR; password: LONGINT);
  11.         (** name = Module.(PrinterName|FileName); e.g. CeresPrinter.Pluto, CeresPrinter.Out.Prt, PSPrinter.Out.ps **)
  12.         VAR driver: ARRAY 32 OF CHAR; driverModule: Modules.Module; i, j: INTEGER; driverInit: Modules.Command;
  13.     BEGIN
  14.         res := 1; i := 0; j := 0;
  15.         driver := ""; arg := "";
  16.         WHILE (name[i] # 0X) & (name[i] # ".") DO driver[j] := name[i]; INC(i); INC(j) END;
  17.         driver[j] := 0X;
  18.         IF name[i] # 0X THEN INC(i) END;
  19.         j := 0;
  20.         WHILE (name[i] # 0X) DO arg[j] := name[i]; INC(i); INC(j) END;
  21.         arg[j] := 0X;
  22.         driverModule := Modules.ThisMod(driver);
  23.         IF driverModule = NIL THEN PrinterDriver.Error(driver, "not found"); RETURN END;
  24.         driverInit := Modules.ThisCommand(driverModule, "Init");
  25.         IF driverInit = NIL THEN PrinterDriver.Error(driver, "Init not found"); RETURN END;
  26.         driverInit;
  27.         PrinterDriver.Open(arg, user, password);
  28.         res := PrinterDriver.res;
  29.         IF PrinterDriver.err THEN
  30.             PrinterDriver.Error(PrinterDriver.errMsg, PrinterDriver.f)
  31.         END
  32.     END Open;
  33.     PROCEDURE ReplConst*(x, y, w, h: INTEGER);
  34.     BEGIN PrinterDriver.ReplConst(x, y, w, h)
  35.     END ReplConst;
  36.     PROCEDURE UseListFont*(VAR name: ARRAY OF CHAR);
  37.     BEGIN PrinterDriver.UseListFont(name)
  38.     END UseListFont;
  39.     PROCEDURE String*(x, y: INTEGER; VAR s, fname: ARRAY OF CHAR);
  40.     BEGIN PrinterDriver.String(x, y, s, fname)
  41.     END String;
  42.     PROCEDURE ContString*(VAR s, fname: ARRAY OF CHAR);
  43.     BEGIN PrinterDriver.ContString(s, fname)
  44.     END ContString;
  45.     PROCEDURE ReplPattern*(x, y, w, h, col: INTEGER);
  46.     BEGIN PrinterDriver.ReplPattern(x, y, w, h, col)
  47.     END ReplPattern;
  48.     PROCEDURE Line*(x0, y0, x1, y1: INTEGER);
  49.     BEGIN PrinterDriver.Line(x0, y0, x1, y1)
  50.     END Line;
  51.     PROCEDURE Circle*(x0, y0, r: INTEGER);
  52.     BEGIN PrinterDriver.Circle(x0,y0,r)
  53.     END Circle;
  54.     PROCEDURE Ellipse*(x0, y0, a, b: INTEGER);
  55.     BEGIN PrinterDriver.Ellipse(x0, y0, a, b)
  56.     END Ellipse;
  57.     PROCEDURE Spline*(x0, y0, n, open: INTEGER; VAR X, Y: ARRAY OF INTEGER);
  58.     BEGIN PrinterDriver.Spline(x0, y0, n, open, X, Y)
  59.     END Spline;
  60.     PROCEDURE Picture*(x, y, w, h, mode: INTEGER; adr: LONGINT);
  61.     BEGIN PrinterDriver.Picture(x, y, w, h, mode, adr)
  62.     END Picture;
  63.     PROCEDURE Page*(nofcopies: INTEGER);
  64.     BEGIN PrinterDriver.Page(nofcopies)
  65.     END Page;
  66.     PROCEDURE Close*;
  67.     BEGIN PrinterDriver.Close
  68.     END Close;
  69.     PROCEDURE UseColor*(red, green, blue: INTEGER);
  70.     BEGIN PrinterDriver.UseColor(red, green, blue)
  71.     END UseColor;
  72. BEGIN PageWidth := 2336; PageHeight := 3425
  73. END Printer.
  74.